﻿<span style='color:#000000; background:#ffffff; '><pre>
<span style='color:#800000; font-weight:bold; '>protected</span> <span style='color:#800000; font-weight:bold; '>void</span> convertToPdfButton_Click<span style='color:#808030; '>(</span><span style='color:#800000; font-weight:bold; '>object</span> sender<span style='color:#808030; '>,</span> EventArgs e<span style='color:#808030; '>)</span>
<span style='color:#800080; '>{</span>
    <span style='color:#696969; '>// Create a HTML to PDF converter object with default settings</span>
    HtmlToPdfConverter htmlToPdfConverter <span style='color:#808030; '>=</span> <span style='color:#800000; font-weight:bold; '>new</span> HtmlToPdfConverter<span style='color:#808030; '>(</span><span style='color:#808030; '>)</span><span style='color:#800080; '>;</span>

    <span style='color:#696969; '>// Set license key received after purchase to use the converter in licensed mode</span>
    <span style='color:#696969; '>// Leave it not set to use the converter in demo mode</span>
    htmlToPdfConverter<span style='color:#808030; '>.</span>LicenseKey <span style='color:#808030; '>=</span> <span style='color:#800000; '>"</span><span style='color:#0000e6; '>4W9+bn19bn5ue2B+bn1/YH98YHd3d3c=</span><span style='color:#800000; '>"</span><span style='color:#800080; '>;</span>

    <span style='color:#696969; '>// Set an adddional delay in seconds to wait for JavaScript or AJAX calls after page load completed</span>
    <span style='color:#696969; '>// Set this property to 0 if you don't need to wait for such asynchcronous operations to finish</span>
    htmlToPdfConverter<span style='color:#808030; '>.</span>ConversionDelay <span style='color:#808030; '>=</span> <span style='color:#008c00; '>2</span><span style='color:#800080; '>;</span>

    <span style='color:#696969; '>// Select the HTML elements for which to retrieve location and other information from HTML document</span>
    htmlToPdfConverter<span style='color:#808030; '>.</span>HtmlElementsMappingOptions<span style='color:#808030; '>.</span>HtmlElementSelectors <span style='color:#808030; '>=</span> <span style='color:#800000; font-weight:bold; '>new</span> <span style='color:#800000; font-weight:bold; '>string</span><span style='color:#808030; '>[</span><span style='color:#808030; '>]</span> <span style='color:#800080; '>{</span> htmlElementsSelectorTextBox<span style='color:#808030; '>.</span>Text <span style='color:#800080; '>}</span><span style='color:#800080; '>;</span>

    Document pdfDocument <span style='color:#808030; '>=</span> <span style='color:#800000; font-weight:bold; '>null</span><span style='color:#800080; '>;</span>
    <span style='color:#800000; font-weight:bold; '>try</span>
    <span style='color:#800080; '>{</span>
        <span style='color:#696969; '>// Convert HTML page to a PDF document object which can be further modified to highlight the selected elements</span>
        pdfDocument <span style='color:#808030; '>=</span> htmlToPdfConverter<span style='color:#808030; '>.</span>ConvertUrlToPdfDocumentObject<span style='color:#808030; '>(</span>urlTextBox<span style='color:#808030; '>.</span>Text<span style='color:#808030; '>)</span><span style='color:#800080; '>;</span>

        <span style='color:#696969; '>// Highlight the selected elements in PDF with colored rectangles</span>
        <span style='color:#800000; font-weight:bold; '>foreach</span> <span style='color:#808030; '>(</span>HtmlElementMapping htmlElementInfo <span style='color:#800000; font-weight:bold; '>in</span> htmlToPdfConverter<span style='color:#808030; '>.</span>HtmlElementsMappingOptions<span style='color:#808030; '>.</span>HtmlElementsMappingResult<span style='color:#808030; '>)</span>
        <span style='color:#800080; '>{</span>
            <span style='color:#696969; '>// Get other information about HTML element</span>
            <span style='color:#800000; font-weight:bold; '>string</span> htmlElementTagName <span style='color:#808030; '>=</span> htmlElementInfo<span style='color:#808030; '>.</span>HtmlElementTagName<span style='color:#800080; '>;</span>
            <span style='color:#800000; font-weight:bold; '>string</span> htmlElementID <span style='color:#808030; '>=</span> htmlElementInfo<span style='color:#808030; '>.</span>HtmlElementId<span style='color:#800080; '>;</span>

            <span style='color:#696969; '>// Hightlight the HTML element in PDF</span>

            <span style='color:#696969; '>// A HTML element can span over many PDF pages and therefore the mapping of the HTML element in PDF document consists </span>
            <span style='color:#696969; '>// in a list of rectangles, one rectangle for each PDF page where this element was rendered</span>
            <span style='color:#800000; font-weight:bold; '>foreach</span> <span style='color:#808030; '>(</span>HtmlElementPdfRectangle htmlElementLocationInPdf <span style='color:#800000; font-weight:bold; '>in</span> htmlElementInfo<span style='color:#808030; '>.</span>PdfRectangles<span style='color:#808030; '>)</span>
            <span style='color:#800080; '>{</span>
                <span style='color:#696969; '>// Get the HTML element location in PDF page</span>
                PdfPage htmlElementPdfPage <span style='color:#808030; '>=</span> htmlElementLocationInPdf<span style='color:#808030; '>.</span>PdfPage<span style='color:#800080; '>;</span>
                RectangleF htmlElementRectangleInPdfPage <span style='color:#808030; '>=</span> htmlElementLocationInPdf<span style='color:#808030; '>.</span>Rectangle<span style='color:#800080; '>;</span>

                <span style='color:#696969; '>// Highlight the HTML element element with a colored rectangle in PDF</span>
                RectangleElement highlightRectangle <span style='color:#808030; '>=</span> <span style='color:#800000; font-weight:bold; '>new</span> RectangleElement<span style='color:#808030; '>(</span>htmlElementRectangleInPdfPage<span style='color:#808030; '>.</span>X<span style='color:#808030; '>,</span> htmlElementRectangleInPdfPage<span style='color:#808030; '>.</span>Y<span style='color:#808030; '>,</span>
                    htmlElementRectangleInPdfPage<span style='color:#808030; '>.</span>Width<span style='color:#808030; '>,</span> htmlElementRectangleInPdfPage<span style='color:#808030; '>.</span>Height<span style='color:#808030; '>)</span><span style='color:#800080; '>;</span>

                <span style='color:#800000; font-weight:bold; '>if</span> <span style='color:#808030; '>(</span>htmlElementTagName<span style='color:#808030; '>.</span>ToLower<span style='color:#808030; '>(</span><span style='color:#808030; '>)</span> <span style='color:#808030; '>=</span><span style='color:#808030; '>=</span> <span style='color:#800000; '>"</span><span style='color:#0000e6; '>h1</span><span style='color:#800000; '>"</span><span style='color:#808030; '>)</span>
                    highlightRectangle<span style='color:#808030; '>.</span>ForeColor <span style='color:#808030; '>=</span> Color<span style='color:#808030; '>.</span>Blue<span style='color:#800080; '>;</span>
                <span style='color:#800000; font-weight:bold; '>else</span> <span style='color:#800000; font-weight:bold; '>if</span> <span style='color:#808030; '>(</span>htmlElementTagName<span style='color:#808030; '>.</span>ToLower<span style='color:#808030; '>(</span><span style='color:#808030; '>)</span> <span style='color:#808030; '>=</span><span style='color:#808030; '>=</span> <span style='color:#800000; '>"</span><span style='color:#0000e6; '>h2</span><span style='color:#800000; '>"</span><span style='color:#808030; '>)</span>
                    highlightRectangle<span style='color:#808030; '>.</span>ForeColor <span style='color:#808030; '>=</span> Color<span style='color:#808030; '>.</span>Green<span style='color:#800080; '>;</span>
                <span style='color:#800000; font-weight:bold; '>else</span> <span style='color:#800000; font-weight:bold; '>if</span> <span style='color:#808030; '>(</span>htmlElementTagName<span style='color:#808030; '>.</span>ToLower<span style='color:#808030; '>(</span><span style='color:#808030; '>)</span> <span style='color:#808030; '>=</span><span style='color:#808030; '>=</span> <span style='color:#800000; '>"</span><span style='color:#0000e6; '>h3</span><span style='color:#800000; '>"</span><span style='color:#808030; '>)</span>
                    highlightRectangle<span style='color:#808030; '>.</span>ForeColor <span style='color:#808030; '>=</span> Color<span style='color:#808030; '>.</span>Red<span style='color:#800080; '>;</span>
                <span style='color:#800000; font-weight:bold; '>else</span> <span style='color:#800000; font-weight:bold; '>if</span> <span style='color:#808030; '>(</span>htmlElementTagName<span style='color:#808030; '>.</span>ToLower<span style='color:#808030; '>(</span><span style='color:#808030; '>)</span> <span style='color:#808030; '>=</span><span style='color:#808030; '>=</span> <span style='color:#800000; '>"</span><span style='color:#0000e6; '>h4</span><span style='color:#800000; '>"</span><span style='color:#808030; '>)</span>
                    highlightRectangle<span style='color:#808030; '>.</span>ForeColor <span style='color:#808030; '>=</span> Color<span style='color:#808030; '>.</span>Yellow<span style='color:#800080; '>;</span>
                <span style='color:#800000; font-weight:bold; '>else</span> <span style='color:#800000; font-weight:bold; '>if</span> <span style='color:#808030; '>(</span>htmlElementTagName<span style='color:#808030; '>.</span>ToLower<span style='color:#808030; '>(</span><span style='color:#808030; '>)</span> <span style='color:#808030; '>=</span><span style='color:#808030; '>=</span> <span style='color:#800000; '>"</span><span style='color:#0000e6; '>h5</span><span style='color:#800000; '>"</span><span style='color:#808030; '>)</span>
                    highlightRectangle<span style='color:#808030; '>.</span>ForeColor <span style='color:#808030; '>=</span> Color<span style='color:#808030; '>.</span>Indigo<span style='color:#800080; '>;</span>
                <span style='color:#800000; font-weight:bold; '>else</span> <span style='color:#800000; font-weight:bold; '>if</span> <span style='color:#808030; '>(</span>htmlElementTagName<span style='color:#808030; '>.</span>ToLower<span style='color:#808030; '>(</span><span style='color:#808030; '>)</span> <span style='color:#808030; '>=</span><span style='color:#808030; '>=</span> <span style='color:#800000; '>"</span><span style='color:#0000e6; '>h6</span><span style='color:#800000; '>"</span><span style='color:#808030; '>)</span>
                    highlightRectangle<span style='color:#808030; '>.</span>ForeColor <span style='color:#808030; '>=</span> Color<span style='color:#808030; '>.</span>Orange<span style='color:#800080; '>;</span>
                <span style='color:#800000; font-weight:bold; '>else</span>
                    highlightRectangle<span style='color:#808030; '>.</span>ForeColor <span style='color:#808030; '>=</span> Color<span style='color:#808030; '>.</span>Navy<span style='color:#800080; '>;</span>

                highlightRectangle<span style='color:#808030; '>.</span>LineStyle<span style='color:#808030; '>.</span>LineDashStyle <span style='color:#808030; '>=</span> LineDashStyle<span style='color:#808030; '>.</span>Solid<span style='color:#800080; '>;</span>

                htmlElementPdfPage<span style='color:#808030; '>.</span>AddElement<span style='color:#808030; '>(</span>highlightRectangle<span style='color:#808030; '>)</span><span style='color:#800080; '>;</span>
            <span style='color:#800080; '>}</span>
        <span style='color:#800080; '>}</span>

        <span style='color:#696969; '>// Save the PDF document in a memory buffer</span>
        <span style='color:#800000; font-weight:bold; '>byte</span><span style='color:#808030; '>[</span><span style='color:#808030; '>]</span> outPdfBuffer <span style='color:#808030; '>=</span> pdfDocument<span style='color:#808030; '>.</span>Save<span style='color:#808030; '>(</span><span style='color:#808030; '>)</span><span style='color:#800080; '>;</span>

        <span style='color:#696969; '>// Send the PDF as response to browser</span>

        <span style='color:#696969; '>// Set response content type</span>
        Response<span style='color:#808030; '>.</span>AddHeader<span style='color:#808030; '>(</span><span style='color:#800000; '>"</span><span style='color:#0000e6; '>Content-Type</span><span style='color:#800000; '>"</span><span style='color:#808030; '>,</span> <span style='color:#800000; '>"</span><span style='color:#0000e6; '>application/pdf</span><span style='color:#800000; '>"</span><span style='color:#808030; '>)</span><span style='color:#800080; '>;</span>

        <span style='color:#696969; '>// Instruct the browser to open the PDF file as an attachment or inline</span>
        Response<span style='color:#808030; '>.</span>AddHeader<span style='color:#808030; '>(</span><span style='color:#800000; '>"</span><span style='color:#0000e6; '>Content-Disposition</span><span style='color:#800000; '>"</span><span style='color:#808030; '>,</span> String<span style='color:#808030; '>.</span>Format<span style='color:#808030; '>(</span><span style='color:#800000; '>"</span><span style='color:#0000e6; '>attachment; filename=Select_in_API_HTML_Elements_to_Retrieve.pdf; size={0}</span><span style='color:#800000; '>"</span><span style='color:#808030; '>,</span> outPdfBuffer<span style='color:#808030; '>.</span>Length<span style='color:#808030; '>.</span>ToString<span style='color:#808030; '>(</span><span style='color:#808030; '>)</span><span style='color:#808030; '>)</span><span style='color:#808030; '>)</span><span style='color:#800080; '>;</span>

        <span style='color:#696969; '>// Write the PDF document buffer to HTTP response</span>
        Response<span style='color:#808030; '>.</span>BinaryWrite<span style='color:#808030; '>(</span>outPdfBuffer<span style='color:#808030; '>)</span><span style='color:#800080; '>;</span>

        <span style='color:#696969; '>// End the HTTP response and stop the current page processing</span>
        Response<span style='color:#808030; '>.</span>End<span style='color:#808030; '>(</span><span style='color:#808030; '>)</span><span style='color:#800080; '>;</span>
    <span style='color:#800080; '>}</span>
    <span style='color:#800000; font-weight:bold; '>finally</span>
    <span style='color:#800080; '>{</span>
        <span style='color:#696969; '>// Close the PDF document</span>
        <span style='color:#800000; font-weight:bold; '>if</span> <span style='color:#808030; '>(</span>pdfDocument <span style='color:#808030; '>!</span><span style='color:#808030; '>=</span> <span style='color:#800000; font-weight:bold; '>null</span><span style='color:#808030; '>)</span>
            pdfDocument<span style='color:#808030; '>.</span>Close<span style='color:#808030; '>(</span><span style='color:#808030; '>)</span><span style='color:#800080; '>;</span>
    <span style='color:#800080; '>}</span>
<span style='color:#800080; '>}</span>
</pre>
</span>